#ifndef _WX_FONTENUM_H_
#define _WX_FONTENUM_H_

#include "wx/fontenc.h"
#include "wx/arrstr.h"

#if wxUSE_PANGO || defined(__WXDFB__)
#define wxHAS_UTF8_FONTS
#endif

class wxFontEnumerator {
  public:
    wxFontEnumerator() {}
    virtual ~wxFontEnumerator() {}
    virtual bool EnumerateFacenames(wxFontEncoding encoding = wxFONTENCODING_SYSTEM,bool fixedWidthOnly = false);
    virtual bool EnumerateEncodings( const wxString& facename = wxEmptyString );
    virtual bool OnFacename( const wxString& ( facename ) ) { return true; }
    virtual bool OnFontEncoding( const wxString& ( facename ),const wxString& ( encoding ) ) { return true; }
    static wxArrayString
    GetFacenames( wxFontEncoding encoding = wxFONTENCODING_SYSTEM,bool fixedWidthOnly = false );
    static wxArrayString GetEncodings( const wxString& facename = wxEmptyString );
    static bool IsValidFacename( const wxString &str );
  private:
    #ifdef wxHAS_UTF8_FONTS
    bool EnumerateEncodingsUTF8( const wxString& facename );
    #endif

    DECLARE_NO_COPY_CLASS( wxFontEnumerator )
};

#endif
